package trastienda.service;

import java.util.Collection;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;

import trastienda.dao.ProductoDAO;

import trastienda.excepcion.DAOExcepcion;

import trastienda.modelo.Producto;



@Service
public class ProductoServiceImpl implements ProductoService{

	@Autowired
	private ProductoDAO productoDAO;
	
	public void setProductoDAO(ProductoDAO productoDAO) {
		this.productoDAO = productoDAO;
	}
/*
	public Producto validar(String idUsuario, String clave) throws DAOExcepcion,
			LoginExcepcion {
		return usuarioDAO.validar(idUsuario, clave);
	}*/

	@Override
	public Collection<Producto> buscarPorNombreProductos(String nombre)
			throws DAOExcepcion {
		return productoDAO.buscarPorNombreProduc(nombre);
	}

	@Override
	public Producto obtenerPorIdproducto(String idProducto) throws DAOExcepcion {
		return productoDAO.obtenerPorIdproduc(idProducto);
	}

	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public Producto insertarProducto(Producto pro) throws DAOExcepcion {
		return productoDAO.insertarProduc(pro);
	}

	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public Producto actualizarproducto(Producto proo) throws DAOExcepcion {
		return productoDAO.actualizarproduc(proo);
	}

	@Override
	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = { DAOExcepcion.class })
	public void eliminarProducto(String idProducto) throws DAOExcepcion {
		productoDAO.eliminarProduc(idProducto);
	}

	@Override
	public Collection<Producto> listarTodosProducto() throws DAOExcepcion {
		return productoDAO.listarTodosProduc();
	}
	
	
	
	
}
